package com.springboot.study.service.impl;
import com.springboot.study.pojo.LoginInfo;
import com.springboot.study.dao.LoginInfoDao;
import com.springboot.study.service.LoginInfoService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;

@Service("loginInfoService")
public class LoginInfoServiceImpl implements LoginInfoService {
    @Resource
    private LoginInfoDao loginInfoDao;

    /**
     * 通过ID查询单条数据
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public LoginInfo queryById(Long id) {
        return this.loginInfoDao.queryById(id);
    }
    /**
     * 分页查询
     *
     * @param loginInfo 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    @Override
    public Page<LoginInfo> queryByPage(LoginInfo loginInfo, PageRequest pageRequest) {
        long total = this.loginInfoDao.count(loginInfo);
        return new PageImpl<>(this.loginInfoDao.queryAllByLimit(loginInfo, pageRequest), pageRequest, total);
    }

    /**
     * 新增数据
     *
     * @param loginInfo 实例对象
     * @return 实例对象
     */
    @Override
    public LoginInfo insert(LoginInfo loginInfo) {
        this.loginInfoDao.insert(loginInfo);
        return loginInfo;
    }

    /**
     * 修改数据
     *
     * @param loginInfo 实例对象
     * @return 实例对象
     */
    @Override
    public LoginInfo update(LoginInfo loginInfo) {
        this.loginInfoDao.update(loginInfo);
        return this.queryById(loginInfo.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Long id) {
        return this.loginInfoDao.deleteById(id) > 0;
    }
}
